package cmd

import (
	"fmt"

	"gitee.com/workits/pkgs/toolx"
	"github.com/spf13/cobra"
)

var genModuleName string
var genTableName string
var genTableComment string
var genIngnorePrefix string
var genStructName string

var genCmd = &cobra.Command{
	Use:   "gen",
	Short: "根据数据库表生成代码",
	Long:  "根据数据库表生成代码",
	Run: func(cmd *cobra.Command, args []string) {
		if len(genModuleName) == 0 {
			panic("🔔模块名称不能为空, 请使用 -m moduleName")
		}
		if len(genTableName) == 0 {
			panic("🔔数据库表名不能为空, 请使用 -t tableName")
		}

		toolx.GenCode(".", genModuleName, genTableName, genTableComment, genIngnorePrefix, genStructName)

		fmt.Println("🎉代码生成完成")
	},
}

func init() {
	rootCmd.AddCommand(genCmd)
	genCmd.Flags().StringVarP(&genModuleName, "module", "m", "", "模块名称")
	genCmd.Flags().StringVarP(&genTableName, "table", "t", "", "数据库表名")
	genCmd.Flags().StringVarP(&genTableComment, "comment", "c", "", "数据库表注释")
	genCmd.Flags().StringVarP(&genIngnorePrefix, "ignore", "i", "", "需要忽略的表前缀")
	genCmd.Flags().StringVarP(&genStructName, "name", "n", "", "自定义结构体名称")
}
